<script>
export default {
  name: "News",
  data() {
    return {
      a: false,
      opacity: 1,
    }
  },
  // beforeDestroy() {
  //   console.log("News组件即将被销毁了！");
  //   // 页面销毁的时候清空定时器
  //   clearInterval(this.timmer);
  // },
  // mounted() {
  //   console.log('mounted', this);
  //   // 定时器控制透明度
  //   this.timmer = setInterval(() => {
  //     this.opacity -= 0.01;
  //     if (this.opacity <= 0) {
  //       this.opacity = 1;
  //     }
  //   }, 16);
  // }

  // 使用路由组件独有的生命周期钩子。实现上面无法实现的功能，其中上面的页面已经使用keep-alive缓存起来了，那么定时器就无法在beforeDestroy进行销毁，浪费了执行效率和性能
  // 【activated路由组件独有声明周期钩子，被激活的】
  activated() {
    console.log('News组件被激活了');
    console.log('mounted', this);
    // 定时器控制透明度
    this.timmer = setInterval(() => {
      console.log('@@@定时器');
      this.opacity -= 0.01;
      if (this.opacity <= 0) {
        this.opacity = 1;
      }
    }, 16);
  },
  // 【activated路由组件独有声明周期钩子，取消激活的】
  deactivated() {
    console.log('News组件失活了');
    // console.log("News组件即将被销毁了！");
    // 页面销毁的时候清空定时器
    clearInterval(this.timmer);
  },
}
</script>

<template>
  <div>
    <ul>
      <li :style="{opacity}">欢迎学习Vue</li>
      <li>news001 <input type="text"/></li>
      <li>news002 <input type="text"/></li>
      <li>news003 <input type="text"/></li>
    </ul>
  </div>
</template>

<style scoped>

</style>